chore: capacitor integration tests#976
Open
stevensJourney wants to merge 24 commits into
Open
Conversation
🦋 Changeset detectedLatest commit: 0d6b358 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The work here is inspired and based off the Tauri integration tests added by @simolus3 . Reference
This PR adds integration tests for the Capacitor SDK.
For context, most Capacitor plugins include an
example-appfolder which is a basic Capacitor App used to verify the plugin compiles correctly for Android and iOS.This PR uses the
example-appas a code runner which loads the Vitest Browser-mode server's URL as the source of the Capacitor web content.We use a small trick where the
example-app's Capacitor config is a TypeScript (could also be JavaScript) file which sets the app's web content source to the value of an environment variable. This means that the app can be started with a dynamic web contents source.The Vitest browser mode integration then builds the Capacitor app and starts it by providing the appropriate URL for the Vitest test suite.
This PR ports the React Native tests from
tools/powersynctestsfor Capacitor. The test suite essentially only handles basic query operations and Capacitor specific logic - like ensuring concurrency. AI usage disclaimer - the tests were ported using Codex GPT 5.5.Bug fix
These unit tests actually exposed a bug in the current code! The
executeBatchmethod was broken on iOS. This adds a fix.